The window state 'client_decorated' will only be set the window is being
realized. If anyone tries to get the shadow size before that it'd get
the with as if there always was no shadow.
This avoids negative sized opaque regions caused by the allocation being
smaller than shadow.
https://bugzilla.gnome.org/show_bug.cgi?id=748615
get_shadow_width (GtkWidget *widget,
GtkBorder *shadow_width)
{
- GtkWindowPrivate *priv = GTK_WINDOW (widget)->priv;
+ GtkWindow *window = GTK_WINDOW (widget);
+ GtkWindowPrivate *priv = window->priv;
GtkBorder border = { 0 };
GtkBorder d = { 0 };
GtkBorder margin;
*shadow_width = border;
if (!priv->decorated ||
- !priv->client_decorated)
+ !gtk_window_should_use_csd (window) ||
+ !gtk_window_supports_client_shadow (window))
return;
if (priv->maximized ||